Récupérer localement un site en production

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Récupérer localement un site en production

    Bonsoir à tous,
    Les hasards de la vie m'ont mis dans la situation ou je dois gérer et administrer un site Joomla que je n'ai pas créé (je ne connaissais d'ailleurs pas le CMS il y a deux ans ).
    Il se trouve que ce site a été récemment infecté par un malware (plus de 1000 fichiers php infectés) qui ne fait pas de dégats visibles (ça ralentit le site) mais je veux nettoyer tout ça.
    Après avoir fureté sur le web, la solution radicale m'est apparue comme étant une mise à jour avec une nouvelle version de Joomla qui a le mérite de remettre tous les fichiers au propre.
    Le site de production est en Joomla 3.5.1 et je le veux passer en 3.9.13 et apparemment, il n'est pas possible, du moins chez mon hébergeur, d'utiliser ma mise à jour Joomla pour un tel saut
    De plus, je veux pouvoir faire la maintenance de ce site depuis mon ordi local
    Pour ce faire,
    1 ) j'ai copié, via filezilla, tous les fichiers du site de prod sur mon ordi ( Linux ubuntu 18.0.4 , apache2 , mysql , PHP 7.2 ) dans un répertoire reconnu par Apache comme hote virtuel
    2) J'ai sauvegardé la BdD via phpmyadmin depuis le site de production sous forme d'un fichier de commandes sql que j'ai téléchargé en local
    3) Je l'ai regénéré sur mon ordi local directement par les commandes sql create database et source du fichier de sauvegarde.
    4) j'ai modifié, dans configuration.php les noms d'hote, de database, d'utilisateur et de mot de passe ainsi que les repertoires logs et tmp.

    Après ça, j'ai essayé d'accéder au site : Page blanche sans le moindre message. Le code source de la page est vide ce qui montre que ça s'est planté dans le php avant que la moindre ligne de code html n'ait été générée. Par contre, on entre dans l'administration sans problème et je retrouve bien en apparence les contenus du site.
    Il y a sans doute un petit loup que je n'ai pas vu dans la config.

    Autre manière de procéder

    J'ai installé un site Joomla 3.9.13 vide sur ma machine, puis écrasé les données de la BdD créée à l'installation avec les données récupérées du site de production et là, Oh miracle, je rentre dans le site sans le moindre problème et je retrouve mes petits après mise à jour des répertoires "images" et "media" avec les données récupérés du site de prod, par contre, plantage total de la partie admin, je récupère une erreur 1504. Après quelques recherches, j'effectue les modifs recommandées sur un site dans les tables xxxx_menu_types (rajout d'une colonne) et xxxx_menu (modifier quelques valeurs) et j'arrive à accéder à l'admin. Hélas, la barre de menu n'existe pas et je n'ai que le menu d'aide, donc totalement coincé.

    Question 1

    Quelle est la bonne manip à faire ?

    Copier le site en l'état, puis faire une mise à jour de Joomla (je ne sais pas comment faire manuellement) ou utiliser la seconde option en créant un site neuf, puis en mettant à jour les données ?

    Question 2

    Qu'est-ce que j'ai raté dans chacun des processus décrits ci-dessus pour que ça coince ?

    Merci pour votre aide







  • #2
    Bonjour,

    Dans un tel cas, personnellement je privilégie l'import des données de l'ancien site vers un nouveau site vierge, considérant que la mise à jour d'un site infecté ne permet pas d'être certain de ne pas avoir oublié un fichier vérolé dans un des multiples sous-répertoires.
    J'utilise volontiers JMigrator, moins souvent SP Transfer (il y en a d'autres) qui permettent en plus (sûr pour JMigrator, pas complètement pour d'autres) les adresses des pages et donc leur référencement. Passer par ce type d'utilitaire permet de récupérer toutes les données standard de Joomla!, puis d'importer les tables des extensions tierces avant de réinstaller ces extensions.

    En ce qui concerne la maintenance des CMS, elle se fait en ligne. Tu peux en utiliser une copie locale pour tests, puis reproduire tes modifications sur le site de production.
    Il est fort possible qu'une extension du site actuel au moins soit incompatible avec la version de PHP locale, et pour une mise à jour depuis la 3.5.1, il me semble qu'on doit d'abord mettre à jour en 3.6.5, et il est souvent nécessaire, lors de grands sauts de ce type, de vérifier que tout a été bien installé, en allant dans le menu "Découvrir", puis dans le menu "Base de données" s'assurer que tout est bien à jour.
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

    Commentaire


    • #3
      Bonjour,
      Ça répond à ma première question, à savoir refaire une installation de la nouvelle version puis mettre à jour les donéées, mais ça ne résoud pas le problème de ne pas retrouver les fonctions de l'admin.

      en Examinant les tables dans mysql, une nouvelle base ne comporte que moins de 100 tables (celles préfixées par le préfixe défini à l'installation) mais il n'y a pas les tables préfixées j16_ et jos_ figurant dans ma base en production qui elle comporte 233 tables.

      Manifestement, la structure des tables en 3.9.13 n'est plus la même qu'en version 3.5 et écraser une base générée en 3.9 par une sauvegarde d'une base créée en version 3.5 doit provoquer quelques ennuis, mais y existe-t-il une solution pour migrer une base de version 3.5.x vers 3.9.y ?

      Merci de votre aide


      Commentaire


      • #4
        Si tu crées un site neuf, tu as accès à l'administration, et en utilisant une extension d'import comme JMigrator, peu importe que le site à importer fonctionne ou pas, l'extension va directement chercher les données dans la base. Il ne s'agit pas d'écraser manuellement des tables mais d'utiliser un outil qui sait faire l'import en tenant compte de la différence de structure. Tu n'importeras manuellement, si l'extension que tu vas utiliser ne te le permet pas directement, que les tables correspondant aux extensions ajoutées au site actuel, avant de réinstaller les extensions qui repéreront la présence de leurs tables et en feront la mise à jour de structure si besoin.

        Dans ta base, tu as manifestement deux jeux (anciens) de tables correspondant à une installation 1.5 ou antérieure, puis une nouvelle installation 1.6 où les tables précédentes n'ont pas été supprimées.
        Il y a donc en moyenne deux fois moins de tables réellement utilisées par le site. Regarde le fichier configuration.php depuis ton client ftp, tu trouveras quel est le bon préfixe qui sera celui des tables à importer.
        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

        Commentaire


        • #5
          OK, Je connais le préfixe de nos tables
          Si je comprends bien la bonne manip à faire est :
          1) Créer un site vierge
          2) récupérer l'extension JMigrator: Comment ça se fait ?
          3) Importer l'ancienne base avec JMigrator
          4) Vérifier que tout marche et, éventuellement importer "manuellement" quelques tables manquantes.

          Merci pour le tuyau, je vais essayer et te tiens au courant de la suite

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X